package  
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	/**
	 * ...
	 * @author Teo Lahmeyer
	 */
	public class Main extends MovieClip
	{
		// Objetos
		private var char		:Char;
		private var inimigo		:Inimigo;
		private var tiro		:Tiro;
		public  var backgroundA	:Background;
		public  var backgroundB	:Background;
		public 	var tela		:MovieClip;
		
		// Comandos
		private var cima		:Boolean;
		private var baixo		:Boolean;
		private var esquerda	:Boolean;
		private var direita		:Boolean;
		private var atirar		:Boolean;
		
		public function Main() 
		{
			desenhaTela();
			
			stage.addEventListener(Event.ENTER_FRAME, atualizar);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, apertaTecla);
			stage.addEventListener(KeyboardEvent.KEY_UP, soltaTecla);
		}
		
		private function atualizar(e:Event):void 
		{
			controles();
			limitarTela();
			moverTela();
		}
		
		private function desenhaTela():void
		{
			tela = new MovieClip();
			addChild(tela);
						
			backgroundA = new Background();
			backgroundA.x = 0;
			tela.addChild(backgroundA);
			
			backgroundB = new Background();
			backgroundB.x = backgroundA.width;
			tela.addChild(backgroundB);
			
			char = new Char();
			char.x = 120;
			char.y = 300;
			tela.addChild(char);
		}
		
		private function apertaTecla(e:KeyboardEvent):void
		{
			if (e.keyCode == Keyboard.W)
			{
				cima = true;
			}
			
			else if (e.keyCode == Keyboard.A)
			{
				esquerda = true;
			}
			
			else if (e.keyCode == Keyboard.S)
			{
				baixo = true;
			}
			
			else if (e.keyCode == Keyboard.D)
			{
				direita = true;
			}
			
			else if (e.keyCode == Keyboard.SPACE)
			{
				atirar = true;
			}
			
		}
		
		private function soltaTecla(e:KeyboardEvent):void
		{
			if (e.keyCode == Keyboard.W)
			{
				cima = false;
			}
			
			else if (e.keyCode == Keyboard.A)
			{
				esquerda = false;
			}
			
			else if (e.keyCode == Keyboard.S)
			{
				baixo = false;
			}
			
			else if (e.keyCode == Keyboard.D)
			{
				direita = false;
			}
			
			else if (e.keyCode == Keyboard.SPACE)
			{
				atirar = true;
			}
		}
		
		private function controles():void
		{
			if (cima)
			{
				char.y -= char.velocidade;
			}
			
			if(baixo)
			{
				char.y += char.velocidade;
			}
			
			if (esquerda)
			{
				char.x -= char.velocidade;
			}
			
			if (direita)
			{
				char.x += char.velocidade;
			}
			
			if (atirar)
			{
				
			}
			
		}
		
		private function limitarTela():void
		{
			if (char.x >= 800 - char.width / 2)
			{
				char.x = 800 - char.width / 2;
			}
			
			if (char.x <= 0 + char.width / 2)
			{
				char.x = char.width / 2;
			}
			
			if (char.y >= 600 - char.height / 2)
			{
				char.y = 600 - char.height / 2;
			}
			
			if (char.y <= 0 + char.height / 2)
			{
				char.y = char.height / 2;
			}
		}
		
		private function moverTela():void
		{
			backgroundA.x -= backgroundA.scrollSpeed;
			backgroundB.x -= backgroundB.scrollSpeed;
			
			if (backgroundA.x < - backgroundA.width) 
			{
				backgroundA.x = backgroundA.width;
			}
			else if (backgroundB.x < - backgroundB.width)
			{
				backgroundB.x = backgroundB.width;
			}
		}
		
	}

}